const rp = require('request-promise-native');

const util = require('../util');

/**
 * get 请求的转发器
 */

const logger = util.logger;

module.exports = {
  forward: (json)=>{
    let options = {
      uri: json.request_url,
      qs: json.request_content,
      headers: json.request_header,
      timeout: json.request_timeout
    };

    logger.debug('forward get request: ', options);

    //由于此处使用的异步框架不同，所以创建了一个新的 Promise 对象，正常情况不应这样使用
    return new Promise((suc, fail) =>{
      rp(options).then((res) =>{
        logger.debug(`请求 ${options.uri} 返回：`, res);
        suc(res);
      })
      .catch((err) =>{
        logger.error(`请求 ${options.uri} 异常：`, err.error);
        fail(err);
      });
    });
  }
};